/**
 * 空对象模式：使用一个空对象代替 null 值，这个空对象实现了相同的接口，但对请求不做任何操作或提供默认操作。
 * 
 * 示例需求：
 * 创建一个定义操作（在这里，是客户的名称）的 AbstractCustomer 抽象类，
 * 和扩展了 AbstractCustomer 类的实体类。
 * 工厂类 CustomerFactory 基于客户传递的名字来返回 RealCustomer 或 NullCustomer 对象。
 * 
 * 角色：
 * 抽象对象：AbstractCustomer
 * 具体对象：RealCustomer
 * 空对象：NullCustomer
 */
public class SimpleMain {
    public static void main(String[] args) {
       AbstractCustomer customer1=  CustomerFactory.getCustomer("Rob");
       AbstractCustomer customer2=  CustomerFactory.getCustomer("null");

      System.out.println("Customer: "+ customer1.getName());
      System.out.println("Customer: "+ customer2.getName());

    }
}
